// 保存场景功能修复脚本
$(document).ready(function() {
    console.log('保存场景功能修复脚本加载');
    
    // 确保表单提交事件正确处理
    function setupFormSubmission() {
        const form = $('#add-edit-form');
        
        // 移除所有现有的提交事件处理
        form.off('submit');
        
        // 添加新的提交事件处理
        form.on('submit', function(e) {
            e.preventDefault();
            e.stopPropagation();
            
            console.log('表单提交事件触发');
            
            // 验证表单数据
            const name = $('#scene-name').val().trim();
            if (!name) {
                showToast('error', '请输入场景名称');
                return false;
            }
            
            // 调用保存函数
            if (typeof saveScene === 'function') {
                console.log('调用saveScene函数');
                saveScene();
            } else {
                console.error('saveScene函数未定义');
                // 如果saveScene未定义，手动执行保存逻辑
                performSave();
            }
            
            return false;
        });
    }
    
    // 手动保存函数
    function performSave() {
        console.log('执行手动保存逻辑');
        
        const name = $('#scene-name').val().trim();
        const description = $('#scene-description').val().trim();
        const tags = $('#scene-tags').val().trim();
        
        // 收集步骤数据
        const steps = collectStepsData ? collectStepsData() : [];
        
        const requestData = {
            name: name,
            description: description,
            tags: tags ? tags.split(',').map(tag => tag.trim()) : [],
            steps: steps
        };
        
        // 判断是新增还是编辑
        const mode = $('#add-edit-form').data('mode') || 'add';
        const sceneId = $('#add-edit-form').data('id');
        
        let url = '/scene/';
        let method = 'POST';
        
        if (mode === 'edit') {
            url = `/scene/${sceneId}`;
            method = 'PUT';
        }
        
        console.log('发送保存请求:', { url, method, data: requestData });
        
        $.ajax({
            url: url,
            method: method,
            contentType: 'application/json',
            data: JSON.stringify(requestData),
            success: function(response) {
                console.log('保存成功:', response);
                if (response.success) {
                    showToast('success', response.message || '保存成功');
                    $('#addEditModal').modal('hide');
                    if (typeof loadSceneList === 'function') {
                        loadSceneList(currentPage || 1);
                    }
                } else {
                    showToast('error', response.message || '保存失败');
                }
            },
            error: function(error) {
                console.error('保存失败:', error);
                showToast('error', '保存场景失败');
            }
        });
    }
    
    // 确保保存按钮事件正确处理
    function setupSaveButton() {
        const saveBtn = $('#save-scene-btn');
        
        // 移除所有现有的点击事件处理
        saveBtn.off('click');
        
        // 添加新的点击事件处理
        saveBtn.on('click', function(e) {
            e.preventDefault();
            console.log('保存按钮点击事件触发');
            
            // 触发表单验证和提交
            $('#add-edit-form').submit();
        });
    }
    
    // 延迟执行设置，确保所有脚本加载完成
    setTimeout(function() {
        console.log('开始设置保存功能');
        setupFormSubmission();
        setupSaveButton();
        console.log('保存功能设置完成');
    }, 1000);
    
    // 监听模态框显示事件，重新绑定事件
    $('#addEditModal').on('shown.bs.modal', function() {
        console.log('模态框显示，重新绑定保存事件');
        setTimeout(function() {
            setupFormSubmission();
            setupSaveButton();
        }, 500);
    });
    
    console.log('保存场景功能修复脚本加载完成');
});